<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
org.apache.poi.hpsf (POI API Documentation)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="org.apache.poi.hpsf (POI API Documentation)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/poi/hpbf/model/qcbits/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/poi/hpsf/extractor/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/poi/hpsf/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<H2>
Package org.apache.poi.hpsf
</H2>
<div>
<P>
<B>See:</B>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
<P>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/ClassID.html" title="class in org.apache.poi.hpsf">ClassID</A></B></TD>
<TD>Represents a class ID (16 bytes).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/Constants.html" title="class in org.apache.poi.hpsf">Constants</A></B></TD>
<TD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="../../../../org/apache/poi/util/CodePageUtil.html" title="class in org.apache.poi.util"><CODE>CodePageUtil</CODE></A> to lookup code pages</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/CustomProperties.html" title="class in org.apache.poi.hpsf">CustomProperties</A></B></TD>
<TD>Maintains the instances of <A HREF="../../../../org/apache/poi/hpsf/CustomProperty.html" title="class in org.apache.poi.hpsf"><CODE>CustomProperty</CODE></A> that belong to a
 <A HREF="../../../../org/apache/poi/hpsf/DocumentSummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>DocumentSummaryInformation</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/CustomProperty.html" title="class in org.apache.poi.hpsf">CustomProperty</A></B></TD>
<TD>This class represents custom properties in the document summary
 information stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/DocumentSummaryInformation.html" title="class in org.apache.poi.hpsf">DocumentSummaryInformation</A></B></TD>
<TD>Convenience class representing a DocumentSummary Information stream in a
 Microsoft Office document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/HPSFPropertiesOnlyDocument.html" title="class in org.apache.poi.hpsf">HPSFPropertiesOnlyDocument</A></B></TD>
<TD>A version of <A HREF="../../../../org/apache/poi/POIDocument.html" title="class in org.apache.poi"><CODE>POIDocument</CODE></A> which allows access to the
  HPSF Properties, but no other document contents.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/MutableProperty.html" title="class in org.apache.poi.hpsf">MutableProperty</A></B></TD>
<TD>Adds writing capability to the <A HREF="../../../../org/apache/poi/hpsf/Property.html" title="class in org.apache.poi.hpsf"><CODE>Property</CODE></A> class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/MutablePropertySet.html" title="class in org.apache.poi.hpsf">MutablePropertySet</A></B></TD>
<TD>Adds writing support to the <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A> class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/MutableSection.html" title="class in org.apache.poi.hpsf">MutableSection</A></B></TD>
<TD>Adds writing capability to the <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A> class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/Property.html" title="class in org.apache.poi.hpsf">Property</A></B></TD>
<TD>A property in a <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A> of a <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf">PropertySet</A></B></TD>
<TD>Represents a property set in the Horrible Property Set Format
 (HPSF).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/PropertySetFactory.html" title="class in org.apache.poi.hpsf">PropertySetFactory</A></B></TD>
<TD>Factory class to create instances of <A HREF="../../../../org/apache/poi/hpsf/SummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>SummaryInformation</CODE></A>,
 <A HREF="../../../../org/apache/poi/hpsf/DocumentSummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>DocumentSummaryInformation</CODE></A> and <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf">Section</A></B></TD>
<TD>Represents a section in a <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/SpecialPropertySet.html" title="class in org.apache.poi.hpsf">SpecialPropertySet</A></B></TD>
<TD>Abstract superclass for the convenience classes <A HREF="../../../../org/apache/poi/hpsf/SummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>SummaryInformation</CODE></A> and <A HREF="../../../../org/apache/poi/hpsf/DocumentSummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>DocumentSummaryInformation</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/SummaryInformation.html" title="class in org.apache.poi.hpsf">SummaryInformation</A></B></TD>
<TD>Convenience class representing a Summary Information stream in a
 Microsoft Office document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/Thumbnail.html" title="class in org.apache.poi.hpsf">Thumbnail</A></B></TD>
<TD>Class to manipulate data in the Clipboard Variant (<A HREF="../../../../org/apache/poi/hpsf/Variant.html#VT_CF"><CODE>VT_CF</CODE></A>) format.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/TypeWriter.html" title="class in org.apache.poi.hpsf">TypeWriter</A></B></TD>
<TD>Class for writing little-endian data and more.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/Util.html" title="class in org.apache.poi.hpsf">Util</A></B></TD>
<TD>Provides various static utility methods.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/Variant.html" title="class in org.apache.poi.hpsf">Variant</A></B></TD>
<TD>The <em>Variant</em> types as defined by Microsoft's COM.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/VariantSupport.html" title="class in org.apache.poi.hpsf">VariantSupport</A></B></TD>
<TD>Supports reading and writing of variant data.</TD>
</TR>
</TABLE>
&nbsp;

<P>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Exception Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/HPSFException.html" title="class in org.apache.poi.hpsf">HPSFException</A></B></TD>
<TD>This exception is the superclass of all other checked exceptions thrown
 in this package.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/HPSFRuntimeException.html" title="class in org.apache.poi.hpsf">HPSFRuntimeException</A></B></TD>
<TD>This exception is the superclass of all other unchecked
 exceptions thrown in this package.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/IllegalPropertySetDataException.html" title="class in org.apache.poi.hpsf">IllegalPropertySetDataException</A></B></TD>
<TD>This exception is thrown when there is an illegal value set in a
 <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/IllegalVariantTypeException.html" title="class in org.apache.poi.hpsf">IllegalVariantTypeException</A></B></TD>
<TD>This exception is thrown if HPSF encounters a variant type that is illegal
 in the current context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/MarkUnsupportedException.html" title="class in org.apache.poi.hpsf">MarkUnsupportedException</A></B></TD>
<TD>This exception is thrown if an <CODE>InputStream</CODE> does
 not support the <CODE>InputStream.mark(int)</CODE> operation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/MissingSectionException.html" title="class in org.apache.poi.hpsf">MissingSectionException</A></B></TD>
<TD>This exception is thrown if one of the <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>'s
 convenience methods does not find a required <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/NoFormatIDException.html" title="class in org.apache.poi.hpsf">NoFormatIDException</A></B></TD>
<TD>This exception is thrown if a <A HREF="../../../../org/apache/poi/hpsf/MutablePropertySet.html" title="class in org.apache.poi.hpsf"><CODE>MutablePropertySet</CODE></A> is to be written
 but does not have a formatID set (see <A HREF="../../../../org/apache/poi/hpsf/MutableSection.html#setFormatID(org.apache.poi.hpsf.ClassID)"><CODE>MutableSection.setFormatID(ClassID)</CODE></A> or
 <A HREF="../../../../org/apache/poi/hpsf/MutableSection.html#setFormatID(byte[])"><CODE>MutableSection.setFormatID(byte[])</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/NoPropertySetStreamException.html" title="class in org.apache.poi.hpsf">NoPropertySetStreamException</A></B></TD>
<TD>This exception is thrown if a format error in a property set stream is
 detected or when the input data do not constitute a property set stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/NoSingleSectionException.html" title="class in org.apache.poi.hpsf">NoSingleSectionException</A></B></TD>
<TD>This exception is thrown if one of the <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>'s
 convenience methods that require a single <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A> is called
 and the <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A> does not contain exactly one <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/ReadingNotSupportedException.html" title="class in org.apache.poi.hpsf">ReadingNotSupportedException</A></B></TD>
<TD>This exception is thrown when HPSF tries to read a (yet) unsupported
 variant type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/UnexpectedPropertySetTypeException.html" title="class in org.apache.poi.hpsf">UnexpectedPropertySetTypeException</A></B></TD>
<TD>This exception is thrown if a certain type of property set is
 expected (e.g.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/UnsupportedVariantTypeException.html" title="class in org.apache.poi.hpsf">UnsupportedVariantTypeException</A></B></TD>
<TD>This exception is thrown if HPSF encounters a variant type that isn't
 supported yet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/VariantTypeException.html" title="class in org.apache.poi.hpsf">VariantTypeException</A></B></TD>
<TD>This exception is thrown if HPSF encounters a problem with a variant type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/poi/hpsf/WritingNotSupportedException.html" title="class in org.apache.poi.hpsf">WritingNotSupportedException</A></B></TD>
<TD>This exception is thrown when trying to write a (yet) unsupported variant
 type.</TD>
</TR>
</TABLE>
&nbsp;

<P>
<A NAME="package_description"><!-- --></A><H2>
Package org.apache.poi.hpsf Description
</H2>

<P>
<div>
   <p>Processes streams in the Horrible Property Set Format (HPSF) in POI
    filesystems. Microsoft Office documents, i.e. POI filesystems, usually
    contain meta data like author, title, last saving time etc. These items
    are called <strong>properties</strong> and stored in
    <strong>property set streams</strong> along with the document itself. These
    streams are commonly named <tt>\005SummaryInformation</tt> and
    <tt>\005DocumentSummaryInformation</tt>. However, a POI filesystem may
    contain further property sets of other names or types.</p>

   <p>In order to extract the properties from a POI filesystem, a property set
    stream's contents must be parsed into a <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A> instance.  Its subclasses <A HREF="../../../../org/apache/poi/hpsf/SummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>SummaryInformation</CODE></A> and <A HREF="../../../../org/apache/poi/hpsf/DocumentSummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>DocumentSummaryInformation</CODE></A> deal with the well-known
    property set streams <tt>\005SummaryInformation</tt> and
    <tt>\005DocumentSummaryInformation</tt>. (However, the streams' names are
    irrelevant. What counts is the property set's first section's format ID -
    see below.)</p>

   <p>The factory method <A HREF="../../../../org/apache/poi/hpsf/PropertySetFactory.html#create(org.apache.poi.poifs.filesystem.DirectoryEntry, java.lang.String)"><CODE>PropertySetFactory.create(org.apache.poi.poifs.filesystem.DirectoryEntry, java.lang.String)</CODE></A>
    creates a <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A> instance. This method
    always returns the <strong>most specific property set</strong>: If it
    identifies the stream data as a Summary Information or as a Document
    Summary Information it returns an instance of the corresponding class, else
    the general <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>.</p>

   <p>A <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A> contains a list of <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A>s which can be retrieved  with <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html#getSections()"><CODE>PropertySet.getSections()</CODE></A>. Each <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A> contains a <A HREF="../../../../org/apache/poi/hpsf/Property.html" title="class in org.apache.poi.hpsf"><CODE>Property</CODE></A> array which can be retrieved with <A HREF="../../../../org/apache/poi/hpsf/Section.html#getProperties()"><CODE>Section.getProperties()</CODE></A>. Since the vast majority of
    <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>s contains only a single <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A>, the convenience method <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html#getProperties()"><CODE>PropertySet.getProperties()</CODE></A> returns the properties of a
    <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A>'s  <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A> (throwing a <A HREF="../../../../org/apache/poi/hpsf/NoSingleSectionException.html" title="class in org.apache.poi.hpsf"><CODE>NoSingleSectionException</CODE></A> if the <A HREF="../../../../org/apache/poi/hpsf/PropertySet.html" title="class in org.apache.poi.hpsf"><CODE>PropertySet</CODE></A> contains more (or less) than exactly one
    <A HREF="../../../../org/apache/poi/hpsf/Section.html" title="class in org.apache.poi.hpsf"><CODE>Section</CODE></A>).</p>

   <p>Each <A HREF="../../../../org/apache/poi/hpsf/Property.html" title="class in org.apache.poi.hpsf"><CODE>Property</CODE></A> has an <strong>ID</strong>, a
    <strong>type</strong>, and a <strong>value</strong> which can be retrieved
    with <A HREF="../../../../org/apache/poi/hpsf/Property.html#getID()"><CODE>Property.getID()</CODE></A>, <A HREF="../../../../org/apache/poi/hpsf/Property.html#getType()"><CODE>Property.getType()</CODE></A>, and <A HREF="../../../../org/apache/poi/hpsf/Property.html#getValue()"><CODE>Property.getValue()</CODE></A>, respectively. The value's class
    depends on the property's type. <!-- FIXME: --> The current implementation
    does not yet support all property types and restricts the values' classes
    to <CODE>String</CODE>, <CODE>Integer</CODE> and <CODE>Date</CODE>. A value of a yet unknown type is returned as a byte array
    containing the value's origin bytes from the property set stream.</p>

   <p>To retrieve the value of a specific <A HREF="../../../../org/apache/poi/hpsf/Property.html" title="class in org.apache.poi.hpsf"><CODE>Property</CODE></A>,
    use <A HREF="../../../../org/apache/poi/hpsf/Section.html#getProperty(long)"><CODE>Section.getProperty(long)</CODE></A> or <A HREF="../../../../org/apache/poi/hpsf/Section.html#getPropertyIntValue(long)"><CODE>Section.getPropertyIntValue(long)</CODE></A>.</p>

   <p>The <A HREF="../../../../org/apache/poi/hpsf/SummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>SummaryInformation</CODE></A> and <A HREF="../../../../org/apache/poi/hpsf/DocumentSummaryInformation.html" title="class in org.apache.poi.hpsf"><CODE>DocumentSummaryInformation</CODE></A> classes provide convenience
    methods for retrieving well-known properties. For example, an application
    that wants to retrieve a document's title string just calls <A HREF="../../../../org/apache/poi/hpsf/SummaryInformation.html#getTitle()"><CODE>SummaryInformation.getTitle()</CODE></A> instead of going through
    the hassle of first finding out what the title's property ID is and then
    using this ID to get the property's value.</p>

   <p>Writing properties can be done with the classes
    <A HREF="../../../../org/apache/poi/hpsf/MutablePropertySet.html" title="class in org.apache.poi.hpsf"><CODE>MutablePropertySet</CODE></A>, <A HREF="../../../../org/apache/poi/hpsf/MutableSection.html" title="class in org.apache.poi.hpsf"><CODE>MutableSection</CODE></A>, and <A HREF="../../../../org/apache/poi/hpsf/MutableProperty.html" title="class in org.apache.poi.hpsf"><CODE>MutableProperty</CODE></A>.</p>

   <p>Public documentation from Microsoft can be found in the  <a 
    href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stg/stg/properties_and_property_sets.asp"
    target="_blank">appropriate section of the MSDN Library</a>.</p>

   <div>
    <h2>History</h2>

    <dl>
     <dt>2003-09-11:</dt>

     <dd>
      <p><A HREF="../../../../org/apache/poi/hpsf/PropertySetFactory.html#create(java.io.InputStream)"><CODE>PropertySetFactory.create(InputStream)</CODE></A> no
       longer throws an
       <A HREF="../../../../org/apache/poi/hpsf/UnexpectedPropertySetTypeException.html" title="class in org.apache.poi.hpsf"><CODE>UnexpectedPropertySetTypeException</CODE></A>.</p></dd>
    </dl>
   </div>


   <div>
    <h2>To Do</h2>

    <p>The following is still left to be implemented. Sponsering could foster
     these issues considerably.</p>

    <ul>

     <li>
      <p>Convenience methods for setting summary information and document
       summary information properties</p>
     </li>

     <li>
      <p>Better codepage support</p>
     </li>

     <li>
      <p>Support for more property (variant) types</p>
     </li>

    </ul>

   </div>

   <p>
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Rainer Klute (klute@rainer-klute.de)
   </p>
  </div></DD>
</DL>
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/poi/hpbf/model/qcbits/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/poi/hpsf/extractor/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/poi/hpsf/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

                <i>Copyright 2016 The Apache Software Foundation or
        its licensors, as applicable.</i>
            
</BODY>
</HTML>
